"Binder:6102_1C" prio=5 tid=128 Blocked waiting to lock <0x053efd20> (a com.android.server.am.ActivityManagerService) held by thread 32 "PackageManager" prio=5 tid=32 Blocked waiting to lock <0x081d6b54> (a android.util.ArrayMap) held by thread 128
privateWatchdog(){ 300super("watchdog"); 301// Initialize handler checkers for each common thread we want to check. Note 302// that we are not currently checking the background thread, since it can 303// potentially hold longer running operations with no guarantees about the timeliness 304// of operations there. 305 306// The shared foreground thread is the main checker. It is where we 307// will also dispatch monitor checks and do other work. 308 mMonitorChecker = new HandlerChecker(FgThread.getHandler(), 309"foreground thread", DEFAULT_TIMEOUT); 310 mHandlerCheckers.add(mMonitorChecker); 311// Add checker for main thread. We only do a quick check since there 312// can be UI running on the thread. 313 mHandlerCheckers.add(new HandlerChecker(new Handler(Looper.getMainLooper()), 314"main thread", DEFAULT_TIMEOUT)); 315// Add checker for shared UI thread. 316 mHandlerCheckers.add(new HandlerChecker(UiThread.getHandler(), 317"ui thread", DEFAULT_TIMEOUT)); 318// And also check IO thread. 319 mHandlerCheckers.add(new HandlerChecker(IoThread.getHandler(), 320"i/o thread", DEFAULT_TIMEOUT)); 321// And the display thread. 322 mHandlerCheckers.add(new HandlerChecker(DisplayThread.getHandler(), 323"display thread", DEFAULT_TIMEOUT)); 324// And the animation thread. 325 mHandlerCheckers.add(new HandlerChecker(AnimationThread.getHandler(), 326"animation thread", DEFAULT_TIMEOUT)); 327// And the surface animation thread. 328 mHandlerCheckers.add(new HandlerChecker(SurfaceAnimationThread.getHandler(), 329"surface animation thread", DEFAULT_TIMEOUT)); 330 331// Initialize monitor for Binder threads. 332 addMonitor(new BinderThreadMonitor()); 333 334 mOpenFdMonitor = OpenFdMonitor.create(); 335 336// See the notes on DEFAULT_TIMEOUT. 337assert DB || 338 DEFAULT_TIMEOUT > ZygoteConnectionConstants.WRAPPED_PID_TIMEOUT_MILLIS; }